Le package {OFCE}

C’est vraiment pas compliqué

Par

Paul Malliet

Anissa Saumtally

Xavier Timbeau

Publié le

29 novembre 2023

1 Introduction

1.1 Rappel sur les packages R


  • un package est une librairie de fonctions développées par les utilisateurs de R dans le but d’ajouter des fonctionnalités à R
Commandes de base pour les packages
## on les installe avec :

install.packages("NOM_DU_PACKAGE")

## on y fait appel avec

library("NOM_DU_PACKAGE")

## Référence à une fonction d'un package spécifique

NOM_DU_PACKAGE::la_super_fonction()
  • On les trouve :

    • sur le CRAN : il s’agit d’un répertoire « officiel » des packages. Ils répondent à de hautes exigences qui font que ces packages sont fiables

    • sur GitHub : généralement pour les packages en développement

    • via des canaux privés : le package est transmis directement au format .tar.gz ou .zip. Attention à la source, peu de garanties sur leur utilisation

1.2 {pak} : une alternative pour les gens « cool » (Xavier)

  • Le package {pak} permet une installation simplifiée des packages à la fois provenant du CRAN et de GitHub (il gère mieux les conflits de version et dépendances)
Code
install.packages("pak")
  • Exemple d’utilisation sur un package du CRAN
Code
pak::pak("tidyverse")
  • Exemples d’utilisation sur un package sur GitHub
Code
pak::pak("nom_utilisateur_git/nom_du_package")

pak::pak("1961Shivani/hypothesis") ## un package random sur GitHub

pak::pak("ThreeME-org/ermeeth") ## le package de l'équipe ThreeME trop stylé

1.3 Package OFCE : Pourquoi ?


  • Rassembler les outils développés en interne à l’OFCE :

    • harmoniser les pratiques (templates de documents, chartes graphiques, thèmes graphiques)

    • partager les outils développés par chacun pour faciliter l’utilisation de R

    Gain de temps conséquent ! Promis!

  • Où le trouver ?

  • Rassembler les outils développés en interne à l’OFCE :

    • harmoniser les pratiques (patrons de documents, chartes graphiques, thèmes graphiques)

    • partager les outils développés par chacung pour faciliter l’utilisation de R ## Installation du package

  • Vérifier que la version de R est à jour (au moins 4.3.0)
R.version$version.string
[1] "R version 4.3.2 (2023-10-31)"
  • Installer le package {quarto}
pak::pak("quarto")
  • Installer l’extension fontawesome (via le terminal)
quarto add quarto-ext/fontawesome
  • Installer tinytex (via le terminal)
quarto install tinytex
  • Le package {ofce} est hébergé sur le compte GitHub de l’OFCE

    • …Donc ?
Code
pak::pak("OFCE/ofce")

2 les templates Quarto

2.1 Résumé des fonctions


Quelque part, sont ajoutés tous les éléments pour le yaml, des bouts de code html, latex pour faire le document. Tout se trouve dans _extensions.


On l’ajoute dans le dossier où se trouve le qmd et on fait référence dans le yaml avec les lignes :


---
format:
   wp-html: default
   wp-pdf: default
---

2.2 Les différents types de document

  • working paper : ajoute le dossier _extensions et fait un document exemple que l’on peut modifier
    setup_wp() ou pour le faire dans un dossier spécifique setup_wp("mon_dossier")

  • blog : setup_blog()

  • présentation : setup_pres()

  • pour appliquer à un qmd existant
    setup_quarto() (ne fait que remettre _extensions à jour)

Il est possible de spécifier

  • des paramètres dans le yaml

  • d’ajouter des filtres lua

  • de modifier les codes html, latex, scss

2.3 Demo Time !

via GIPHY

3 theme_ofce

  • Le package ‹ofce› contient plusieurs fonctions associées à la réalisation d’un graphe sous R en format publiable

  • Les modifications apportées peuvent se distinguer en trois groupes:

    • Les modifications de thème: tout ce qui a a attrait aux différents élements du graphe (axes, fond, légende…)
    • La modification des couleurs utilisées
    • L’ajout d’élements exterieurs supplémentaires hors thème

3.1 Faire un graphique sous R

3.1.1 Un graphique basique

# create a dataset
countries <- c(rep("Espagne" , 3) , rep("France" , 3) , rep("Allemagne" , 3) , rep("Italie" , 3) )
condition <- rep(c("food index" , "drink index" , "beauty index") , 4)
value <- abs(rnorm(12 , 0 , 15))
data <- data.frame(countries,condition,value)
 
# Grouped
p <- ggplot(data, aes(fill=condition, y=value, x=countries)) + 
    geom_bar(position="dodge", stat="identity")
p

3.2 Faire un graphique sous R

3.2.1 Un graphique basique

Figure 1: Un graphe simple de type geom_bar

3.3 Faire un graphique sous R

3.3.1 Ajout du theme ofce

p + theme_ofce()

p <- p +
   theme_ofce() +
  theme(legend.title = element_blank(),
        legend.position = "bottom") + 
  labs(x = element_blank(),
       # y = element_blank()
       y = "Note sur 100"
       )
p

3.4 Faire un graphique sous R

3.4.1 Ajout du theme ofce

Figure 2: Ajout d’un theme ‹ofce› et manipulations sur les fonctions themes
Figure 3: Ajout d’un theme ‹ofce› et manipulations sur les fonctions themes

3.5 Faire un graphique sous R

3.5.1 Changement des couleurs

# Une palette 'basique' ofce_palette
p <- p + scale_fill_manual(values = ofce::ofce_palette(n=3))
p
Figure 4: utilisation de palettes séquentielle (p1) et divergente(P2)
# Une palette 'sequentielle' ofce_palette_seq
p1 <- p + scale_fill_manual(values = ofce::ofce_palette_seq(n=3))
p1
Figure 5: utilisation de palettes séquentielle (p1) et divergente(P2)
# Une palette 'divergente' ofce_palette_div
p2 <- p + scale_fill_manual(values = ofce::ofce_palette_div(n=3))
p2
Figure 6: utilisation de palettes séquentielle (p1) et divergente(P2)

3.6 Faire un graphique sous R

3.7 Faire un graphique sous R

3.7.1 Ajout d’un logo

Figure 7: Ajout d’un logo (image)

4 Autres fonctionnalités

4.1 Exporter un graphique


Ces trois fonctions aident à exporter un graphique. Elles utilisent showtext pour assurer la bonne sortie des caractères à la bonne taille

  • graph2png(graph, file="", rep="svg", ratio = 4/3, dpi = 600)

pour un texte imprimé (A4), un bon ratio est 4/3, pour une présentation (16/10). Pour une carte ratio 1.

  • graph2svg

  • graph2jpg

4.2 f2si2


cette fonction sert à appliquer le Système International pour produire une chaîne de caractère compacte et lisible en utilisant des puissance de 1 000 et une notation standardisée (k, M, G, T, …).

Pratique pour les messages ou les échelles.

ofce::f2si2(c(2000000, 3000000), digits = 2) 
[1] "2M" "3M"
ofce::f2si2(c(142010, 2000000, 100.1928), digits = 2) 
[1] "142.01k" "2000k"   "0.1k"   
purrr::map_chr(c(142010, 2000000, 0.1928), ofce::f2si2)
[1] "142k"   "2M"     "192.8m"
ofce::uf2si2(c(1100,1110,2000,2100))
[1] "1.1k"  "1.11k" "2k"    "2.1k" 

4.3 Préférences de RStudio


la fonction setup_RStudio() force les préférences de RStudio à être :

  • pas de save de .Rdata

  • utilisation du « pipe natif »

  • utilisation du moteur graphique ragg

  • thème « iPlastic » (peut être un autre thème avec theme="Unautretheme")

  • console à droite

  • et quelques autres

4.4 Evolutivité du package {ofce}

4.5 Conclusion : pour résumer

  • On installe R, RStudio, Quarto, le package {ofce}


  • Un joli working paper en quarto prend 15 secondes avec setup_wp


  • Une présentation un peu moderne prend 10 secondes avec setup_pres


  • La mise en forme d’un graphique ggplot prend 5 secondes avec theme_ofce()


  • Le package {ofce} peut être encore meilleur grâce à vous !

4.6 Alors ?

4.7 Prochaines étapes


  • package encore en évolution : signalez vos difficultés, les bugs, vos souhaits
  • modèle de documents supplémentaires (policy brief, rapport)
  • définition d’une charte graphique du site web (html) aux documents (pdf)
  • intégration de la production de documents quarto directement sur le site via un processus simple (github)
    • blogs

    • documents de travail

    • policy brief

4.8 Merci pour votre attention

via GIPHY

4.9 Références

Réutilisation

Citation

Veuillez citer ce travail comme suit :
Malliet, Paul, Anissa Saumtally, and Xavier Timbeau. 2023. “Le package {OFCE}.” November 29, 2023.